package com.bwie.commodity.domain;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.bwie.common.core.annotation.Excel;
import com.bwie.common.core.web.domain.BaseEntity;

import java.util.List;

/**
 * 商品分类对象 commodity_category
 *
 * @author ruoyi
 * @date 2024-11-14
 */
public class CommodityCategory extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    @Excel(name = "编号")
    private Long id;

    /** 分类名称 */
    @Excel(name = "分类名称")
    @NotBlank(message = "分类名称不能为空")
    private String classificationName;

    /** 上级分类 */
    @Excel(name = "上级分类")
    @NotNull(message = "上级分类不能为空")
    private Long pId;

    /** 数量单位 */
    @Excel(name = "数量单位")
    @NotBlank(message = "数量单位不能为空")
    private String quantityUnits;

    /** 排序 */
    @Excel(name = "排序")
    @NotNull(message = "排序不能为空")
    private Long categorySort;

    /** 是否显示 */
    @Excel(name = "是否显示")
    @NotNull(message = "是否显示不能为空")
    private Long isDisable;

    /** 是否显示在导航栏 */
    @Excel(name = "是否显示在导航栏")
    @NotNull(message = "是否显示在导航栏不能为空")
    private Long isNavigationBar;

    /** 分类图标 */
    @NotBlank(message = "分类图标不能为空")
    private String categoryLogo;

    /** 关键词 */
    @NotBlank(message = "关键词不能为空")
    private String keyword;

    /** 分类描述 */
    @NotBlank(message = "分类描述不能为空")
    private String classificationDescription;

    /** 筛选属性 */
    private List<Integer> commodityTypeAttributesId;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public @NotBlank(message = "分类名称不能为空") String getClassificationName() {
        return classificationName;
    }

    public void setClassificationName(@NotBlank(message = "分类名称不能为空") String classificationName) {
        this.classificationName = classificationName;
    }

    public @NotNull(message = "上级分类不能为空") Long getpId() {
        return pId;
    }

    public void setpId(@NotNull(message = "上级分类不能为空") Long pId) {
        this.pId = pId;
    }

    public @NotBlank(message = "数量单位不能为空") String getQuantityUnits() {
        return quantityUnits;
    }

    public void setQuantityUnits(@NotBlank(message = "数量单位不能为空") String quantityUnits) {
        this.quantityUnits = quantityUnits;
    }

    public @NotNull(message = "排序不能为空") Long getCategorySort() {
        return categorySort;
    }

    public void setCategorySort(@NotNull(message = "排序不能为空") Long categorySort) {
        this.categorySort = categorySort;
    }

    public @NotNull(message = "是否显示不能为空") Long getIsDisable() {
        return isDisable;
    }

    public void setIsDisable(@NotNull(message = "是否显示不能为空") Long isDisable) {
        this.isDisable = isDisable;
    }

    public @NotNull(message = "是否显示在导航栏不能为空") Long getIsNavigationBar() {
        return isNavigationBar;
    }

    public void setIsNavigationBar(@NotNull(message = "是否显示在导航栏不能为空") Long isNavigationBar) {
        this.isNavigationBar = isNavigationBar;
    }

    public @NotBlank(message = "分类图标不能为空") String getCategoryLogo() {
        return categoryLogo;
    }

    public void setCategoryLogo(@NotBlank(message = "分类图标不能为空") String categoryLogo) {
        this.categoryLogo = categoryLogo;
    }

    public @NotBlank(message = "关键词不能为空") String getKeyword() {
        return keyword;
    }

    public void setKeyword(@NotBlank(message = "关键词不能为空") String keyword) {
        this.keyword = keyword;
    }

    public @NotBlank(message = "分类描述不能为空") String getClassificationDescription() {
        return classificationDescription;
    }

    public void setClassificationDescription(@NotBlank(message = "分类描述不能为空") String classificationDescription) {
        this.classificationDescription = classificationDescription;
    }

    public List<Integer> getCommodityTypeAttributesId() {
        return commodityTypeAttributesId;
    }

    public void setCommodityTypeAttributesId(List<Integer> commodityTypeAttributesId) {
        this.commodityTypeAttributesId = commodityTypeAttributesId;
    }

    @Override
    public String toString() {
        return "CommodityCategory{" +
                "id=" + id +
                ", classificationName='" + classificationName + '\'' +
                ", pId=" + pId +
                ", quantityUnits='" + quantityUnits + '\'' +
                ", categorySort=" + categorySort +
                ", isDisable=" + isDisable +
                ", isNavigationBar=" + isNavigationBar +
                ", categoryLogo='" + categoryLogo + '\'' +
                ", keyword='" + keyword + '\'' +
                ", classificationDescription='" + classificationDescription + '\'' +
                ", commodityTypeAttributesId=" + commodityTypeAttributesId +
                '}';
    }
}
